﻿using System;
using TheGameClient.Processes;

namespace TheGameClient
{
	public class ProgramFileCompressor : ProgramBase
	{
		public override ulong InterfaceId
		{
			get { return new Guid("{FDE1C8DE-2BF7-4e5a-8B3D-BC4D7DB015E3}").ToLong(); }
		}

		public override string ProcessName
		{
			get { return "File Compressor"; }
		}

		protected override bool OnlyLocal
		{
			get { return true; }
		}

		protected override string DropErrorStatus
		{
			get { return "Only local files can be compressed."; }
		}

		protected override string SuccessStatus
		{
			get { return "Compression successful."; }
		}

		protected override string FailureStatus
		{
			get { return "Compression failed."; }
		}

		public override void Initialize()
		{
			Control.StatusText = "Drag onto file to be compressed.";
			base.Initialize();
		}
	}

	public class ProgramFileCompressorFactory : UiFactoryBase
	{
		public override InterfaceCategory UiCategory
		{
			get { return InterfaceCategory.Program; }
		}

		public override IProcess CreateProgram()
		{
			return new ProgramFileCompressor();
		}
	}
}